require.config({
	baseUrl: "src",
	paths: {
		text: "../lib/text",
		QQMapAPI: "https://apis.map.qq.com/api/js?v=2.exp&key=VFUBZ-JIR3D-Z2M4H-PPAGG-G5KVQ-S3F2S&module=amd",
		underscore: "common/underscore",
		mustache: "../lib/mustache",
		mqq: "https://pub.idqqimg.com/qqmobile/qqapi.js?_bid=152"
	},
	shim: {
		IScroll: {
			exports: "IScroll"
		},
		mqq: {
			exports: "mqq"
		}
	}
});;
/**
 * @license RequireJS text 2.0.10 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
 * Available via the MIT or new BSD license.
 * see: http://github.com/requirejs/text for details
 */

/*!
 * mustache.js - Logic-less {{mustache}} templates with JavaScript
 * http://github.com/janl/mustache.js
 */

define("common/class/inherit", [], function() {
		return function(e, t) {
			e.super_ = t, e.prototype = Object.create(t.prototype, {
				constructor: {
					value: e,
					enumerable: !1,
					writable: !0,
					configurable: !0
				}
			})
		}
	}), define("common/object/decodeUrlParams", [], function() {
		function e(e) {
			if(e.trim() === "") return {};
			var t = e.split("&"),
				n = {};
			for(var r = 0, i = t.length; r < i; r++) {
				var s = t[r].split("=");
				n[s[0]] = decodeURIComponent(s[1] || "")
			}
			return n
		}
		return e
	}), define("underscore", [], function() {
		return {
			isArray: Array.isArray || function(e) {
				return toString.call(e) === "[object Array]"
			},
			isString: function(e) {
				return typeof e == "string"
			},
			isObject: function(e) {
				var t = typeof e;
				return t === "function" || t === "object" && !!e
			},
			defaults: function(e) {
				if(!this.isObject(e)) return e;
				for(var t = 1, n = arguments.length; t < n; t++) {
					var r = arguments[t];
					for(var i in r) e[i] === void 0 && (e[i] = r[i])
				}
				return e
			},
			bind: function(e, t) {
				return function() {
					e.apply(t, arguments)
				}
			},
			each: function(e, t, n) {
				var r, i = e.length;
				if(e == null) return e;
				if(i === +i)
					for(r = 0; r < i; r++) t.call(n, e[r], r, e);
				else
					for(r in e) t.call(n, e[r], r, e);
				return e
			},
			clone: function(e) {
				var t = this;
				return t.isObject(e) ? t.isArray(e) ? e.slice() : t.extend({}, e) : e
			},
			extend: function(e) {
				var t = this;
				if(!t.isObject(e)) return e;
				var n, r;
				for(var i = 1, s = arguments.length; i < s; i++) {
					n = arguments[i];
					for(r in n) e[r] = n[r]
				}
				return e
			},
			has: function(e, t) {
				return e != null && Object.prototype.hasOwnProperty.call(e, t)
			},
			isEmpty: function(e) {
				var t = this;
				if(e == null) return !0;
				if(e.length === +e.length) return e.length === 0;
				for(var n in e)
					if(t.has(e, n)) return !1;
				return !0
			}
		}
	}), define("data/hash", ["require", "QQMapAPI", "common/class/inherit", "common/object/decodeUrlParams", "underscore"], function(e) {
		var t = e("QQMapAPI").MVCObject,
			n = e("common/class/inherit"),
			r = e("common/object/decodeUrlParams"),
			i = e("underscore"),
			s = ";",
			o = ":",
			u = ",",
			a = function() {
				var e = {};
				location.search && (e = r(location.search.slice(1)), e = f(e)), this.setValues(e)
			};
		n(a, t);
		var f = function(e) {
				e.streetview == 0 && (e.hideStreet = 1);
				var t = {
						marker: l(e.marker),
						icon: c(e.icon),
						referer: e.referer || "",
						hideStreet: e.hideStreet || "",
						appdownload: e.appdownload || "",
						navibutton: e.navibutton || e.tonav || "",
						footdetail: e.footdetail || ""
					},
					n = {},
					r, i;
				if(r = t.icon) n.width = r.size && r.size.split(u)[0], n.height = r.size && r.size.split(u)[1], r.src && (n["icon-src"] = decodeURIComponent(r.src)), n.anchor = r.anchor;
				if(i = t.marker) n.coordtype = i.coordtype, n.location = i.coord, n.addr = i.addr, n.city = i.city, n.name = i.title, n.phone = i.tel;
				return n.referer = t.referer, n.hideStreet = t.hideStreet, n.appdownload = t.appdownload, n.navibutton = t.navibutton, n.footdetail = t.footdetail, n
			},
			l = function(e) {
				if(typeof e != "string" || !e) return;
				var t = e.split(s),
					n = {},
					r;
				return i.each(t, function(e) {
					r = e.split(o), n[r[0]] = r[1]
				}), n
			},
			c = function(e) {
				var t = e,
					n = /src:([^;]*)([;]|$)/g,
					r = n.exec(e);
				r && (t = e.replace(n, "src:" + encodeURIComponent(r[1]) + r[2]));
				var i = l(t);
				return i
			};
		return new a
	}), define("tools/MVCBind", ["require", "underscore", "QQMapAPI", "common/class/inherit"], function(e) {
		var t = e("underscore"),
			n = e("QQMapAPI"),
			r = e("common/class/inherit");
		return function(e, i, s) {
			r(e, n.MVCObject), t.each(i, function(t, n) {
				e.prototype[n] = s[t]
			})
		}
	}), define("ui/map/MapResolution", ["require"], function(e) {
		return function(e, t) {
			return 156543.04 * Math.cos(e * Math.PI / 180) / Math.pow(2, t)
		}
	}), define("ui/map/ScaleControl", ["require", "./MapResolution"], function(e) {
		function n(e, t) {
			this.dom = e, this.map = t, this.baseWidth = 50, r(this), o(this)
		}

		function r(e) {
			function t(t) {
				o(e)
			}
			qq.maps.event.addListener(e.map, "zoom_changed", t), qq.maps.event.addListener(e.map, "center_changed", t)
		}

		function i(e, t) {
			e.dom.style.width = t + "px"
		}

		function s(e, t) {
			t < 1e3 ? t += " 米" : t = t / 1e3 + " 公里", e.dom.textContent = t
		}

		function o(e) {
			var n = t(e.map.getCenter().lat, e.map.getZoom()),
				r = e.baseWidth * n;
			r = f(r), s(e, r), i(e, r / n)
		}

		function f(e) {
			for(var t = 1; t < u.length; t++) {
				var n = (u[t] + u[t - 1]) / 2;
				if(e <= n) return u[t - 1]
			}
			return u[u.length - 1]
		}
		var t = e("./MapResolution"),
			u = [5, 10, 20, 50];
		for(var a = 2; a < 7; a++) u.push(u[u.length - 3] * 10), u.push(u[u.length - 3] * 10), u.push(u[u.length - 3] * 10);
		return n
	}), define("ui/map/Marker", ["require", "QQMapAPI"], function(e) {
		var t = e("QQMapAPI"),
			n = function(e) {
				var n = null,
					r = null,
					i = null;
				typeof e.poiHeight != "undefined" && (n = new t.Size(e.poiWidth, e.poiHeight), r = n), e.poiAnchor && (i = new t.Point(e.poiAnchor.x, e.poiAnchor.y - 4));
				var s = new t.MarkerImage(e.poiIconSrc, n, null, i, r),
					o = new t.Marker({
						position: new t.LatLng(e.poiLocation.lat, e.poiLocation.lng),
						icon: s,
						map: e.map
					});
				this.marker = o
			};
		return n
	}), define("ui/map/MyPositionMarker", ["require", "QQMapAPI", "QQMapAPI", "./MapResolution"], function(e) {
		function s(e, t) {
			n.Overlay.call(this, e), this.dom = null, this.accuracy = null, this.maskCircle = null, this.directionArrow = null, this.toNearby = null, this.myPosInfo = null, this.myAddr = null, this.setDirectionId = null, this.direction = null, this.renderDirection = null, this.bound = !1, this.viewManager = t, o(this)
		}

		function o(e) {
			e.dom = document.querySelector("#common-widget-map #map-my-position-marker"), e.maskCircle = e.dom.querySelector(".round-mask"), i = e.maskCircle.clientWidth / 2, e.directionArrow = e.dom.querySelector(".icon-my-pos-dir"), e.dom.parentNode.removeChild(e.dom), e.dom.style.display = "block", window.DeviceOrientationEvent || (addClass(e.directionArrow, "icon-my-pos"), removeClass(e.directionArrow, "icon-my-pos-dir")), u(e)
		}

		function u(e) {
			window.DeviceOrientationEvent ? (window.addEventListener("deviceorientation", function(t) {
				var n = t.webkitCompassHeading;
				n || (n = -t.alpha), c(e, n)
			}, !1), e.renderDirection = function() {
				e.setDirectionId = null, e.directionArrow.style.webkitTransform = "rotateZ(" + e.direction.toFixed(2) + "deg)"
			}) : console.warn("DeviceOrientationEvent is not supported.")
		}

		function a(e) {
			if(!e.getMap()) return;
			var t = h(e),
				n = t / i,
				r = 1;
			if(n < r) {
				n = r, f(e);
				return
			}
			l(e), t = t.toFixed(2);
			var s = t * 2;
			window.chrome ? e.maskCircle.style.webkitTransform = "scale3d(" + n + "," + n + ",1)" : e.maskCircle.style.cssText = "width:" + s + "px;" + "height:" + s + "px;" + "left:" + -t + "px;" + "top:" + -t + "px;" + "border-radius:" + t + "px;"
		}

		function f(e) {
			e.maskCircle.style.display = "none"
		}

		function l(e) {
			e.maskCircle.style.display = ""
		}

		function c(e, t) {
			if(!e.directionArrow) return;
			e.direction = t;
			if(e.setDirectionId) {
				console.warn("setDirection pending：" + e.setDirectionId);
				return
			}
			e.setDirectionId = setTimeout(e.renderDirection, 1e3 / 30)
		}

		function h(e) {
			var t = e.getMap().getZoom(),
				n = r(e.position.lat, t),
				i = (e.accuracy || 1e3) / n;
			return i || 40
		}
		var t = t || {};
		t.maps = t.maps || e("QQMapAPI");
		var n = e("QQMapAPI"),
			r = e("./MapResolution"),
			i;
		return s.prototype = new n.Overlay, s.prototype.construct = function() {
			var e = this;
			e.getPanes().overlayMouseTarget.appendChild(e.dom);
			if(e.bound) return;
			e.bound = !0, e.directionArrow.onclick = function(e) {
				e.stopPropagation()
			}
		}, s.prototype.draw = function() {
			var e = this.getProjection();
			if(this.position && e) {
				var t = e.fromLatLngToDivPixel(this.position);
				this.dom.style.left = t.getX() - 13 + "px", this.dom.style.top = t.getY() - 13 + "px"
			}
		}, s.prototype.destroy = function() {
			this.dom.parentNode.removeChild(this.dom)
		}, s.prototype.setAccuracy = function(e) {
			this.accuracy = e, a(this)
		}, s.prototype.updatePosition = function(e) {
			e = e || _POSITION.location, this.position = new n.LatLng(e.lat, e.lng), this.draw()
		}, s
	}), define("ui/map/getBoundsByPoints", ["require", "QQMapAPI", "underscore"], function(e) {
		var t = e("QQMapAPI"),
			n = e("underscore");
		return function(e) {
			var r, i, s, o;
			r = i = Infinity, s = o = -Infinity, n.each(e, function(e) {
				r = Math.min(e.getLat(), r), i = Math.min(e.getLng(), i), o = Math.max(e.getLng(), o), s = Math.max(e.getLat(), s)
			});
			var u = new t.LatLng(r, i),
				a = new t.LatLng(s, o);
			return new t.LatLngBounds(u, a)
		}
	}), define("common/platForm", ["require", "exports", "module"], function(e, t, n) {
		function s() {
			var e = navigator.userAgent.toLowerCase();
			return /msie/i.test(e) && !/opera/.test(e) ? "IE" : /firefox/i.test(e) ? "Firefox" : /opera/i.test(e) ? "Opera" : /webkit/i.test(e) && !(/safari/i.test(e) && /webkit/i.test(e) && /mozilla/i.test(e)) ? "Safari" : /safari/i.test(e) && /webkit/i.test(e) && /mozilla/i.test(e) ? "Chrome" : "other"
		}
		var r = window.navigator.userAgent,
			i = {
				android: /android\s(\d+\.\d)/i.test(r) ? +RegExp.$1 : 0,
				ios: /iPad|iPod|iPhone/i.test(r),
				iphone: /iPhone\sOS\s(\d[_\d]*)/i.test(r) ? +parseFloat(RegExp.$1.replace(/_/g, ".")) : 0,
				ipad: /iPad.*OS\s(\d[_\d]*)/i.test(r) ? +parseFloat(RegExp.$1.replace(/_/g, ".")) : 0,
				ipod: /iPod\sOS\s(\d[_\d]*)/i.test(r) ? +parseFloat(RegExp.$1.replace(/_/g, ".")) : 0,
				mqqBrowser: /MQQBrowser\/(\d+)/i.test(r) ? +parseFloat(RegExp.$1) : 0,
				uc: /UC/i.test(r) || /UCWEB/i.test(window.navigator.vendor),
				micromessenger: /MicroMessenger/i.test(r),
				i9300: /i9300/i.test(r),
				i9308: /i9308/i.test(r),
				sonyEricssonLT26i: /sonyEricssonLT26i/i.test(r),
				google: /google/i.test(window.navigator.vendor),
				htc_802: /HTC_802/i.test(r),
				htc: /HTC/i.test(r),
				htc_802w: /802w/i.test(r),
				chrome: /Chrome\/([.0-9]*) /.test(r) ? RegExp.$1 : null,
				iosQQ: /(iPad|iPhone|iPod).*?QQ/g.test(r),
				androidQQ: /\bV1_AND_SQ_/.test(r)
			};
		return i.mobileQQ = i.iosQQ || i.androidQQ, i.mqq = i.mqqBrowser, i.getOsVer = function() {
				return i.android ? "android" : i.ios ? "ios" : "other"
			}, i.getBVer = function() {
				return i.uc ? "uc" : i.chrome ? "chrome" : i.micromessenger ? "micromessenger" : i.mqqBrowser ? "mqqBrowser" : i.mobileQQ ? "mobileQQ" : s()
			}, i.is_weixin = function() {
				var e = navigator.userAgent.toLowerCase();
				return e.match(/MicroMessenger/i) == "micromessenger" ? !0 : !1
			}, i.is_mobileQQ = function() {
				var e = navigator.userAgent.toLowerCase();
				return /QQ\/5./i.test(e) || /QQ\/4./i.test(e)
			}, i.isQQBrowser4 = function() {
				return navigator != null && navigator.userAgent.indexOf("MQQBrowser/4.0") >= 0
			}, i.supportsCSS3 = function() {
				return i.sonyEricssonLT26i || i.i9300 || i.htc_802 || i.i9308 ? !1 : i.htc && i.htc_802w ? !1 : i.ios && /6_1/i.test(r) ? !1 : i.ios && !i.uc || i.android >= 4 && i.google && !i.mqq && !i.uc
			},
			function() {
				if(i.i9300) {
					var e = Math.sin,
						t = Math.cos;
					Math.sin = function(t) {
						return t ? e(t) : 0
					}, Math.cos = function(e) {
						return e ? t(e) : 1
					}
				}
			}(), i
	}), define("common/object/encodeUrlParams", [], function() {
		function e(e) {
			var t = [];
			for(var n in e) {
				if(e[n] == null) continue;
				t.push(n + "=" + encodeURIComponent(e[n]))
			}
			return t.join("&")
		}
		return e
	}), define("common/stat", ["require", "exports", "module", "./platForm", "common/object/encodeUrlParams"], function(e, t, n) {
		function p() {
			var e = null;
			if(c) e = localStorage;
			else {
				if(!document.cookie) return "";
				e = h
			}
			var t = e.getItem("suid");
			if(t) return t;
			var n = (new Date).getUTCMilliseconds();
			return t = Math.round(Math.random() * 2147483647) * n % 1e10, e.setItem("suid", t), t
		}

		function d() {
			var e = 1,
				t = navigator.userAgent,
				n = window.devicePixelRatio || 1;
			if(navigator.platform.match(/iPhone|iPad|iPod/) || t.match(/Chrome/) && window.chrome || t.match(/Opera/) || t.match(/Firefox/) || t.match(/IEMobile/)) e = n;
			l.report("pv", {
				sw: screen.width * e,
				sh: screen.height * e,
				dpr: n
			})
		}

		function v() {
			window.addEventListener("error", function(e) {
				l.report("error", {
					msg: e.message,
					src: e.filename + ":" + e.lineno + ":" + e.colno,
					stack: e.error && e.error.stack
				})
			}, !1)
		}

		function m() {
			if(!window.performance) return;
			var e = performance.timing,
				t = e.navigationStart;
			l.report("performance", {
				ns: t,
				us: e.unloadEventStart === 0 ? -1 : e.unloadEventStart - t,
				ue: e.unloadEventEnd === 0 ? -1 : e.unloadEventEnd - t,
				rs: e.redirectStart === 0 ? -1 : e.redirectStart - t,
				re: e.redirectEnd === 0 ? -1 : e.redirectEnd - t,
				ds: e.domainLookupStart - t,
				de: e.domainLookupEnd - t,
				cs: e.connectStart - t,
				ce: e.connectEnd - t,
				scs: e.secureConnectionStart === 0 ? -1 : e.secureConnectionStart - t,
				qs: e.requestStart - t,
				ps: e.responseStart - t,
				pe: e.responseEnd - t,
				dl: e.domLoading - t,
				dls: e.domContentLoadedEventStart - t,
				dle: e.domContentLoadedEventEnd - t,
				dc: e.domComplete - t,
				ls: e.loadEventStart === 0 ? -1 : e.loadEventStart - t,
				le: e.loadEventEnd === 0 ? -1 : e.loadEventEnd - t
			})
		}
		var r = e("./platForm"),
			i = e("common/object/encodeUrlParams"),
			s = null,
			o = null,
			u = "",
			a = null,
			f = !1,
			l = {};
		l.init = function(e) {
			if(f) throw new Error("Statistics module can not be initialized multiple times");
			e = e || {}, s = e.appId || "", o = e.statService || "//pr.map.qq.com/pingd", u = e.from || "", a = e.apptype || "", d(), v(), m(), f = !0
		}, l.report = function(e, t, n) {
			if(!s || !o) throw new Error("Statistics module is not initialized");
			var f = new Image(1, 1);
			f.onload = n, f.onerror = function() {
				this.onerror = null, n()
			};
			var l = {
				appid: s,
				apptype: a,
				suid: p(),
				logtype: e,
				hash: location.hash && location.hash.substr(1),
				pageid: "1",
				from: u || "",
				rand: Math.random(),
				os_ver: r.getOsVer(),
				b_ver: r.getBVer()
			};
			t = t || {};
			for(var c in t) t.hasOwnProperty(c) && !l.hasOwnProperty(c) && (l[c] = t[c]);
			f.src = o + "?" + i(l)
		}, l.clickReport = function(e, t, n) {
			if(!s || !o) throw new Error("Statistics module is not initialized");
			var f = new Image(1, 1);
			f.onload = n, f.onerror = function() {
				this.onerror = null, n()
			};
			var l = {
				appid: s,
				apptype: a,
				suid: p(),
				logtype: "btnclick",
				hash: location.hash && location.hash.substr(1),
				pageid: "1",
				from: u || "http://www.qq.com",
				rand: Math.random(),
				os_ver: r.getOsVer(),
				b_ver: r.getBVer(),
				num: e
			};
			t = t || {};
			for(var c in t) t.hasOwnProperty(c) && !l.hasOwnProperty(c) && (l[c] = t[c]);
			f.src = o + "?" + i(l)
		};
		var c = function() {
				try {
					return localStorage.setItem("mapComponent", "1"), localStorage.removeItem("mapComponent"), !0
				} catch(e) {
					return !1
				}
			}(),
			h = {
				getItem: function(e) {
					if(!document.cookie) return "";
					var t = document.cookie.match(new RegExp("\\b" + e + "=([^;]*)"));
					if(t && t.length > 1) return decodeURIComponent(t[1])
				},
				setItem: function(e, t) {
					document.cookie = e + "=" + encodeURIComponent(t)
				}
			};
		return l
	}), define("common/prStat", ["require", "exports", "module", "common/object/encodeUrlParams"], function(e, t, n) {
		function f() {
			var e = 1,
				t = navigator.userAgent,
				n = window.devicePixelRatio || 1;
			if(navigator.platform.match(/iPhone|iPad|iPod/) || t.match(/Chrome/) && window.chrome || t.match(/Opera/) || t.match(/Firefox/) || t.match(/IEMobile/)) e = n;
			a.report("pv", {
				sw: screen.width * e,
				sh: screen.height * e,
				dpr: n
			})
		}
		var r = e("common/object/encodeUrlParams"),
			i = null,
			s = null,
			o = "",
			u = !1,
			a = {};
		return a.init = function(e) {
			if(u) throw new Error("Statistics module can not be initialized multiple times");
			e = e || {}, i = e.appId || "", s = e.statService || "//pr.map.qq.com/pingd", o = e.from || "", f(), u = !0
		}, a.report = function(e, t, n) {
			if(!i || !s) throw new Error("Statistics module is not initialized");
			n = n || function() {};
			var u = new Image(1, 1);
			u.onload = n, u.onerror = function() {
				this.onerror = null, n()
			};
			var a = {
				appid: i,
				from: o || "",
				logid: e,
				rand: Math.random()
			};
			t = t || {};
			for(var f in t) t.hasOwnProperty(f) && !a.hasOwnProperty(f) && (a[f] = t[f]);
			u.src = s + "?" + r(a)
		}, a.clickReport = function(e, t, n) {
			if(!i || !s) throw new Error("Statistics module is not initialized");
			var u = new Image(1, 1);
			u.onload = n, u.onerror = function() {
				this.onerror = null, n()
			};
			var a = {
				appid: i,
				from: o || "http://www.qq.com",
				logid: "btnclick",
				num: e,
				rand: Math.random()
			};
			t = t || {};
			for(var f in t) t.hasOwnProperty(f) && !a.hasOwnProperty(f) && (a[f] = t[f]);
			u.src = s + "?" + r(a)
		}, a
	}), define("config", {
		default_icon_src: "../u-img/poi_2.png",
		default_icon_height: 36,
		default_icon_width: 26,
		default_icon_anchor: {
			x: 13,
			y: 36
		},
		default_zoom: 15,
		default_jsonp_timeout: 1e3,
		apisHost: "//apis.map.qq.com/",
		apisKey: "NRFBZ-673AV-HUTPI-UCYIF-4LV4S-CLBJA",
		webappHost: "//map.qq.com/m/",
		apptype: "lightapp",
		appId: "groupActivity",
		mc_appId: "mc_h5marker"
	}), define("ui/map/drawPoint", ["require", "QQMapAPI", "config", "common/prStat", "data/hash"], function(e) {
		function o(e) {
			this.poiData = e.poiData
		}
		var t = e("QQMapAPI"),
			n = e("config"),
			r = e("common/prStat"),
			i = e("data/hash");
		"use strict";
		var s = {};
		return o.prototype.render = function(e) {
			function u(e) {
				t.Overlay.call(this, e)
			}

			function a(e) {
				t.Overlay.call(this, e)
			}
			var s = this,
				o = this.poiData;
			u.prototype = new t.Overlay, u.prototype.construct = function() {
				var t = $('<div class="poiresultmaker"></div>'),
					n = this,
					r = n.get("index");
				t.html(r + 1), t.tap(function() {
					var t = n.get("infoWindow");
					t.set("position", n.get("position")), t.set("info", o[r]), t.draw(), t.show(), e.panTo(n.get("position"))
				}), n.dom = t[0], n.getPanes().overlayMouseTarget.appendChild(n.dom)
			}, u.prototype.draw = function() {
				var e = this.get("position");
				if(e) {
					var t = this.getProjection().fromLatLngToDivPixel(e);
					this.dom.style.left = t.getX() + "px", this.dom.style.top = t.getY() + "px"
				}
			}, u.prototype.destroy = function() {
				this.dom.parentNode.removeChild(this.dom), this.dom = null
			}, a.prototype = new t.Overlay, a.prototype.construct = function() {
				this.dom = document.createElement("div"), this.dom.className = "poiresultinfowindow";
				var e = "",
					t = "";
				i.hideStreet == "1" && (e = "hide"), i.navibutton == "0" && (t = "hide"), this.dom.innerHTML = '<a class="topoidet" data-adtag="todetail"><span class="det-title"></span><span class="det-addr"></span></a><a class="tonav ' + t + '"data-adtag="poitonav"><i></i><span>去这里</span></a><div class="icon-maker"></div>', this.getPanes().overlayMouseTarget.appendChild(this.dom), this.dom.querySelector(".tonav").onclick = function() {
					r.clickReport("nav", null, function() {
						var e = o[0].name && o[0].name.replace("'", "’");
						i.referer == "dianping" ? window.top.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&appdown=0&navibutton=1&footdetail=2&editstartbutton=0" + "&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "") : i.referer == "meituan" ? window.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&appdown=0&navibutton=1&footdetail=2&editstartbutton=0" + "&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "") : i.referer == "qunhuodong" ? window.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&navibutton=1&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "") : i.referer == "wexinmp_profile" ? window.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&navibutton=1&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "") : i.referer == "parking" ? window.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&navibutton=1&transport=2&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "") : window.location.href = n.webappHost + "mqq/nav/eword=" + e + "&epointx=" + o[0].pointx + "&epointy=" + o[0].pointy + "&noback=?from=light-app&ch=mc_h5marker&ref=" + n.appId + encodeURIComponent(i.referer ? "_" + i.referer : "")
					})
				}
			}, a.prototype.draw = function() {
				var e = this.get("position"),
					t = this.get("info");
				this.dom.querySelector(".det-title").textContent = t.name, 
				this.dom.querySelector(".det-addr").textContent = t.addr;
				$("#address").html(t.addr);
				if(e) {
					var n = this.getProjection().fromLatLngToDivPixel(e);
					this.dom.style.left = n.getX() + "px", this.dom.style.top = n.getY() + "px"
				}
			}, a.prototype.destroy = function() {
				this.dom.parentNode.removeChild(this.dom), this.dom = null
			}, a.prototype.show = function() {
				this.dom.style.display = "block"
			}, a.prototype.hide = function() {
				this.dom.style.display = "none"
			};
			if(o && o.length > 0) {
				s.infoWindow = new a({
					map: e,
					position: new t.LatLng(o[0].pointy, o[0].pointx),
					info: o[0]
				}), s.viewBound = new t.LatLngBounds, s.poiMarker = [];
				for(var f = o.length - 1; f >= 0; f--) s.viewBound.extend(new t.LatLng(o[f].pointy, o[f].pointx));
				o.length === 1 && (e.panTo(new qq.maps.LatLng(o[0].pointy, o[0].pointx)), e.zoomTo(15))
			}
		}, o.prototype.clear = function(e) {
			if(this.poiMarker && this.poiMarker.length > 0) {
				for(var t = 0; t < this.poiMarker.length; t++) this.poiMarker[t].setMap(null);
				this.infoWindow.setMap(null)
			}
		}, s = {
			init: function(e, t) {
				var n = this;
				n.poiData = e, n.map = t, n.render(), n.bind()
			},
			render: function() {
				var e = this;
				e.poiResultMapView = new o({
					poiData: e.poiData,
					map: e.map
				}), e.poiResultMapView.render(e.map)
			},
			bind: function() {
				var e = this
			}
		}, s
	}), define("common/dom/addStyle", [], function() {
		return function(t) {
			var n = document.createElement("style");
			n.innerHTML = t, document.head.appendChild(n)
		}
	}), define("text", ["module"], function(e) {
		"use strict";
		var t, n, r, i, s, o = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"],
			u = /^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,
			a = /<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,
			f = typeof location != "undefined" && location.href,
			l = f && location.protocol && location.protocol.replace(/\:/, ""),
			c = f && location.hostname,
			h = f && (location.port || undefined),
			p = {},
			d = e.config && e.config() || {};
		t = {
			version: "2.0.10",
			strip: function(e) {
				if(e) {
					e = e.replace(u, "");
					var t = e.match(a);
					t && (e = t[1])
				} else e = "";
				return e
			},
			jsEscape: function(e) {
				return e.replace(/(['\\])/g, "\\$1").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r").replace(/[\u2028]/g, "\\u2028").replace(/[\u2029]/g, "\\u2029")
			},
			createXhr: d.createXhr || function() {
				var e, t, n;
				if(typeof XMLHttpRequest != "undefined") return new XMLHttpRequest;
				if(typeof ActiveXObject != "undefined")
					for(t = 0; t < 3; t += 1) {
						n = o[t];
						try {
							e = new ActiveXObject(n)
						} catch(r) {}
						if(e) {
							o = [n];
							break
						}
					}
				return e
			},
			parseName: function(e) {
				var t, n, r, i = !1,
					s = e.indexOf("."),
					o = e.indexOf("./") === 0 || e.indexOf("../") === 0;
				return s !== -1 && (!o || s > 1) ? (t = e.substring(0, s), n = e.substring(s + 1, e.length)) : t = e, r = n || t, s = r.indexOf("!"), s !== -1 && (i = r.substring(s + 1) === "strip", r = r.substring(0, s), n ? n = r : t = r), {
					moduleName: t,
					ext: n,
					strip: i
				}
			},
			xdRegExp: /^((\w+)\:)?\/\/([^\/\\]+)/,
			useXhr: function(e, n, r, i) {
				var s, o, u, a = t.xdRegExp.exec(e);
				return a ? (s = a[2], o = a[3], o = o.split(":"), u = o[1], o = o[0], (!s || s === n) && (!o || o.toLowerCase() === r.toLowerCase()) && (!u && !o || u === i)) : !0
			},
			finishLoad: function(e, n, r, i) {
				r = n ? t.strip(r) : r, d.isBuild && (p[e] = r), i(r)
			},
			load: function(e, n, r, i) {
				if(i.isBuild && !i.inlineText) {
					r();
					return
				}
				d.isBuild = i.isBuild;
				var s = t.parseName(e),
					o = s.moduleName + (s.ext ? "." + s.ext : ""),
					u = n.toUrl(o),
					a = d.useXhr || t.useXhr;
				if(u.indexOf("empty:") === 0) {
					r();
					return
				}!f || a(u, l, c, h) ? t.get(u, function(n) {
					t.finishLoad(e, s.strip, n, r)
				}, function(e) {
					r.error && r.error(e)
				}) : n([o], function(e) {
					t.finishLoad(s.moduleName + "." + s.ext, s.strip, e, r)
				})
			},
			write: function(e, n, r, i) {
				if(p.hasOwnProperty(n)) {
					var s = t.jsEscape(p[n]);
					r.asModule(e + "!" + n, "define(function () { return '" + s + "';});\n")
				}
			},
			writeFile: function(e, n, r, i, s) {
				var o = t.parseName(n),
					u = o.ext ? "." + o.ext : "",
					a = o.moduleName + u,
					f = r.toUrl(o.moduleName + u) + ".js";
				t.load(a, r, function(n) {
					var r = function(e) {
						return i(f, e)
					};
					r.asModule = function(e, t) {
						return i.asModule(e, f, t)
					}, t.write(e, a, r, s)
				}, s)
			}
		};
		if(d.env === "node" || !d.env && typeof process != "undefined" && process.versions && !!process.versions.node && !process.versions["node-webkit"]) n = require.nodeRequire("fs"), t.get = function(e, t, r) {
			try {
				var i = n.readFileSync(e, "utf8");
				i.indexOf("﻿") === 0 && (i = i.substring(1)), t(i)
			} catch(s) {
				r(s)
			}
		};
		else if(d.env === "xhr" || !d.env && t.createXhr()) t.get = function(e, n, r, i) {
			var s = t.createXhr(),
				o;
			s.open("GET", e, !0);
			if(i)
				for(o in i) i.hasOwnProperty(o) && s.setRequestHeader(o.toLowerCase(), i[o]);
			d.onXhr && d.onXhr(s, e), s.onreadystatechange = function(t) {
				var i, o;
				s.readyState === 4 && (i = s.status, i > 399 && i < 600 ? (o = new Error(e + " HTTP status: " + i), o.xhr = s, r(o)) : n(s.responseText), d.onXhrComplete && d.onXhrComplete(s, e))
			}, s.send(null)
		};
		else if(d.env === "rhino" || !d.env && typeof Packages != "undefined" && typeof java != "undefined") t.get = function(e, t) {
			var n, r, i = "utf-8",
				s = new java.io.File(e),
				o = java.lang.System.getProperty("line.separator"),
				u = new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(s), i)),
				a = "";
			try {
				n = new java.lang.StringBuffer, r = u.readLine(), r && r.length() && r.charAt(0) === 65279 && (r = r.substring(1)), r !== null && n.append(r);
				while((r = u.readLine()) !== null) n.append(o), n.append(r);
				a = String(n.toString())
			} finally {
				u.close()
			}
			t(a)
		};
		else if(d.env === "xpconnect" || !d.env && typeof Components != "undefined" && Components.classes && Components.interfaces) r = Components.classes, i = Components.interfaces, Components.utils["import"]("resource://gre/modules/FileUtils.jsm"), s = "@mozilla.org/windows-registry-key;1" in r, t.get = function(e, t) {
			var n, o, u, a = {};
			s && (e = e.replace(/\//g, "\\")), u = new FileUtils.File(e);
			try {
				n = r["@mozilla.org/network/file-input-stream;1"].createInstance(i.nsIFileInputStream), n.init(u, 1, 0, !1), o = r["@mozilla.org/intl/converter-input-stream;1"].createInstance(i.nsIConverterInputStream), o.init(n, "utf-8", n.available(), i.nsIConverterInputStream.DEFAULT_REPLACEMENT_CHARACTER), o.readString(n.available(), a), o.close(), n.close(), t(a.value)
			} catch(f) {
				throw new Error((u && u.path || "") + ": " + f)
			}
		};
		return t
	}), define("text!ui/map/drawPoint.css", [], function() {
		return '.poiresultinfowindow {\r\n  position: absolute;\r\n  width: 183px;\r\n  /*width: 225px;*/\r\n  height: 60px;\r\n  padding-right: 85px;\r\n /* padding-right: 43px;*/\r\n  margin-left: -135px;\r\n  margin-top: -93px;\r\n  -webkit-border-radius: 4px;\r\n  border-radius: 4px;\r\n  background-color: rgba(255,255,255,0.95);\r\n  -webkit-box-shadow: 0 0 6px rgba(0,0,0,0.1);\r\n  box-shadow: 0 0 6px rgba(0,0,0,0.1);\r\n  border: solid 1px #bababa;\r\n  transform: translateZ(0);\r\n  -webkit-transform: translateZ(0);\r\n  z-index: 200;\r\n}\r\n.poiresultinfowindow:after,\r\n.poiresultinfowindow:before {\r\n  content: " ";\r\n  position: absolute;\r\n  left: 50%;\r\n  bottom: 0;\r\n  width: 0;\r\n  height: 0;\r\n  margin-left: -7px;\r\n  border-style: solid;\r\n  border-color: transparent;\r\n  border-width: 7px;\r\n  border-bottom-width: 0;\r\n  z-index: 10;\r\n}\r\n.poiresultinfowindow:before {\r\n  border-top-color: #d1d1d1;\r\n  margin-bottom: -7px;\r\n}\r\n.poiresultinfowindow:after {\r\n  border-top-color: white;\r\n  margin-bottom: -6px;\r\n}\r\n.poiresultinfowindow .tonav {\r\n  display: block;\r\n  position: absolute;\r\n  top: 13px;\r\n  width: 75px;\r\n  height: 34px;\r\n  text-align: center;\r\n  line-height: 60px;\r\n  font-size: 21px;\r\n  border-radius: 4px;\r\n  background-color: #0079ff;\r\n}\r\n.poiresultinfowindow .tonav i {\r\n  background:url(../u-img/arrow.png) no-repeat;\r\n  background-size: cover;\r\n  display: block;\r\n  position: absolute;\r\n  bottom: 7px;\r\n  left: 3px;\r\n  width: 21px;\r\n  height: 21px;\r\n}\r\n.poiresultinfowindow .tonav span {\r\n  display: block;\r\n  position: absolute;\r\n  bottom: 8px;\r\n  right: 6px;\r\n  height: 18px;\r\n  font-size: 15px;\r\n  line-height: 18px;\r\n  color: #fff;\r\n}\r\n.poiresultinfowindow .tonav {\r\n  right: 12px;\r\n}\r\n.poiresultinfowindow .hide {\r\n  display: none;\r\n}\r\n.poiresultinfowindow .topoidet {\r\n  display: block;\r\n  padding: 8px 10px;\r\n  padding-right: 0;\r\n}\r\n.poiresultinfowindow .topoidet .det-title,\r\n.poiresultinfowindow .topoidet .det-addr {\r\n  overflow: hidden;\r\n  text-overflow: ellipsis;\r\n  white-space: nowrap;\r\n}\r\n.poiresultinfowindow .topoidet .det-title {\r\n  display: block;\r\n  font-size: 16px;\r\n  line-height: 26px;\r\n  color: #0079ff;\r\n  font-weight: bold;\r\n}\r\n.poiresultinfowindow .topoidet .det-addr {\r\n  display: block;\r\n  font-size: 12px;\r\n  line-height: 18px;\r\n  color: #8a8d8f;\r\n}\r\n.poiresultinfowindow .icon-maker {\r\n  width: 26px;\r\n  height: 36px;\r\n  position: absolute;\r\n  left: 50%;\r\n  bottom: 0;\r\n  margin-left: -13px;\r\n  margin-bottom: -36px;\r\n}\r\n.poiresultmaker {\r\n  position: absolute;\r\n  width: 16px;\r\n  height: 16px;\r\n  margin-left: -9px;\r\n  margin-top: -9px;\r\n  border-radius: 16px;\r\n  background-color: #ff3f3f;\r\n  border: 1px solid white;\r\n  font-size: 9px;\r\n  line-height: 16px;\r\n  text-align: center;\r\n  font-weight: bold;\r\n  color: white;\r\n  transform: translateZ(0);\r\n  -webkit-transform: translateZ(0);\r\n}\r\n'
	}), define("request/mqqGeo", ["require", "common/stat"], function(e) {
		var t = /(iPad|iPhone|iPod).*? (IPad)?QQ\/([\d\.]+)/,
			n = /\bV1_AND_SQI?_([\d\.]+)(.*? QQ\/([\d\.]+))?/,
			r = navigator.userAgent,
			i = t.test(r),
			s = n.test(r),
			o = e("common/stat");
		return function(t, n, r) {
			i || s ? e(["mqq"], function(e) {
				e.sensor.getLocation(function(e, t, n) {
					if(e == 0) {
						var i = {
							latitude: t,
							longitude: n,
							accuracy: 175
						};
						r(null, {
							coords: i
						})
					} else r({
						errorMessage: "手q定位失败",
						errorCode: "E100"
					})
				})
			}) : r({
				errorMessage: "不在手q中打开"
			})
		}
	}), define("common/ajax/jsonp", ["require"], function(e) {
		function n(e) {
			var n = e.url,
				r = e.cb,
				i = e.context,
				s = e.callbackKey,
				o = e.timeout;
			s = s || "callback";
			var u = t();
			window[u] = function() {
				if(f === null) return;
				clearTimeout(f), f = null, r.apply(i, arguments), window[u] = null
			}, n = n + "&" + s + "=" + u;
			var a = document.createElement("script");
			a.src = n, document.getElementsByTagName("head")[0].appendChild(a);
			if(o) var f = setTimeout(function() {
				f && (f = null, r.apply(i, {
					__errorKey: "timeout"
				}))
			}, o)
		}
		var t = function() {
			var e = "unique",
				t = 0;
			return function() {
				return e + t++
			}
		}();
		return n
	}), define("tools/jsonp", ["require", "common/ajax/jsonp", "config", "underscore"], function(e) {
		var t = e("common/ajax/jsonp"),
			n = e("config"),
			r = e("underscore");
		return function(e) {
			var i = r.clone(e);
			return isNaN(i.timeout) && (i.timeout = n.default_jsonp_timeout), t(i)
		}
	}), define("request/geolocation", ["require", "underscore"], function(e) {
		function u() {
			return n ? !0 : !1
		}

		function a(e) {
			var t = "";
			switch(e.code) {
				case 0:
					t = "尝试获取您的位置信息时发生错误：" + e.message;
					break;
				case 1:
					t = "用户拒绝了获取位置信息请求。";
					break;
				case 2:
					t = "浏览器无法获取您的位置信息。";
					break;
				case 3:
					t = "获取您位置信息超时。"
			}
			for(var n in i) clearTimeout(s[n]), i[n]({
				errorCode: "E" + (200 + e.code),
				errorMessage: t
			});
			i = {}, s = {}, p()
		}

		function f() {
			r = n.watchPosition(c, a, {
				timeout: 1e4
			})
		}

		function l() {
			r && n.clearWatch(r), r = null
		}

		function c(e) {
			var t = e.coords.latitude,
				n = e.coords.longitude,
				r = e.coords.accuracy;
			for(var o in i) r <= o && (clearTimeout(s[o]), i[o](null, e), delete i[o], delete s[o]);
			p()
		}

		function h() {
			r || f()
		}

		function p() {
			t.isEmpty(i) && l()
		}

		function d(e, t) {
			s[t] = setTimeout(function() {
				i[t] && (i[t]({
					errorCode: "E204",
					errorMessage: "获取您位置信息超时。"
				}), console.log("setTimeout", "获取您位置信息超时。"), delete i[t], delete s[t], p())
			}, e)
		}
		var t = e("underscore"),
			n = navigator.geolocation,
			r = null,
			i = {},
			s = {},
			o = u();
		return function(e, t, n) {
			if(!o) {
				n({
					errorMessage: "not support"
				});
				return
			}
			i[e] = n, t && d(t, e), h()
		}
	}), define("request/translate", ["require", "tools/jsonp", "config", "common/object/encodeUrlParams"], function(e) {
		var t = e("tools/jsonp"),
			n = e("config"),
			r = e("common/object/encodeUrlParams"),
			i = n.apisHost + "ws/coord/v1/translate?output=jsonp&key=" + n.apisKey + "&";
		return function(e) {
			param = r(e.param), t({
				url: i + param,
				cb: e.cb,
				context: e.context,
				timeout: e.timeout
			})
		}
	}), define("request/geotransfer", ["require", "tools/jsonp", "config", "common/object/encodeUrlParams", "request/geolocation", "request/translate", "underscore"], function(e) {
		var t = e("tools/jsonp"),
			n = e("config"),
			r = e("common/object/encodeUrlParams"),
			i = e("request/geolocation"),
			s = e("request/translate"),
			o = e("underscore");
		return function(e) {
			var t = +(new Date),
				n = 0,
				r = o.clone(e);
			r.cb = function(r, i) {
				n = +(new Date);
				if(e.timeout - (n - t) < 0) {
					e.cb.call(e.context, {
						errorMessage: "获取定位超时"
					});
					return
				}
				r ? e.cb.call(e.context, r) : s({
					param: {
						locations: i.coords.latitude + "," + i.coords.longitude,
						type: 1
					},
					cb: function(t) {
						t.accuracy = i.coords.accuracy, e.cb(null, t)
					},
					context: e.context,
					timeout: e.timeout - (n - t)
				})
			}, i(r.param.accuracy, r.timeout, r.cb)
		}
	}), define("request/geo", ["require", "./mqqGeo", "./geotransfer", "common/stat"], function(e) {
		var t = e("./mqqGeo"),
			n = e("./geotransfer"),
			r = e("common/stat"),
			i = null;
		return function(e) {
			var i = e.param.accuracy,
				s = e.timeout,
				o = e.cb,
				u = +(new Date);
			r.report("location_start"), t(i, s, function(t, i) {
				t ? (t.errorCode === "E100" && r.report("location_error", {
					callback_time: +(new Date) - u,
					error_code: t.errorCode,
					error_message: t.errorMessage,
					location_type: "mqq"
				}), e.cb = function(e, t) {
					e ? r.report("location_error", {
						callback_time: +(new Date) - u,
						error_code: e.errorCode,
						error_message: e.errorMessage,
						location_type: "h5"
					}) : !t || t.status !== 0 ? r.report("location_error", {
						callback_time: +(new Date) - u,
						error_code: "E300",
						error_message: "坐标转换接口请求失败--" + t.message,
						location_type: "h5"
					}) : r.report("location_success", {
						callback_time: +(new Date) - u,
						location_type: "h5"
					}), o(e, t)
				}, n(e)) : (r.report("location_success", {
					callback_time: +(new Date) - u,
					location_type: "mqq"
				}), o(t, {
					status: 0,
					locations: [{
						lat: i.coords.latitude,
						lng: i.coords.longitude
					}],
					accuracy: i.coords.accuracy
				}))
			})
		}
	}), define("ui/map/MapViewManager", ["require", "./ScaleControl", "underscore", "QQMapAPI", "./Marker", "./MyPositionMarker", "./getBoundsByPoints", "common/stat", "common/prStat", "./drawPoint", "config", "common/dom/addStyle", "text!./drawPoint.css", "request/geo"], function(e) {
		function m(e) {
			this.map = null, this.myPositionMarker = null, this.zoomInBtn = null, this.zoomOutBtn = null, this.currentView = null, this.mapContainer = null, this.positioningBtn = null, this.trafficeBtn = null, this.trafficeLayer = null, this.scaleControl = null, this.markerPos = e.markerPos, this.el = e.el, this.panoId = e.panoId, this.poiName = e.poiName, this.poiAddr = e.poiAddr, this.poiHeight = e.poiHeight, this.poiWidth = e.poiWidth, this.poiIconSrc = e.poiIconSrc, this.poiAnchor = e.poiAnchor, this.needHandle = function() {}, g(this)
		}

		function g(e) {
			var t = function(e) {
				return document.querySelector(e)
			};
			e.mapWidget = t("#common-widget-map"), e.mapContainer = e.el, e.zoomInBtn = t("#common-widget-map #btn-zoom-in"), e.zoomOutBtn = t("#common-widget-map #btn-zoom-out"), e.positioningBtn = t("#common-widget-map #btn-positioning"), e.trafficeBtn = t("#common-widget-map #btn-traffic"), e.scaleControlEl = t("#common-widget-map #map-info .scale"), e.footContainer = t("#common-widget-map .ctrl-layer #map-widget-foot-external-content");
			var n = Date.now();
			y(e), c.init([{
				pointx: e.markerPos.lng,
				pointy: e.markerPos.lat,
				name: e.poiName,
				addr: e.poiAddr,
				panoId: e.panoId
			}], e.map), e.currentView && e.currentView.render(e.map), w(e)
		}

		function y(e) {
			var n = {
				zoomControl: !1,
				mapTypeControl: !1,
				zoom: h.default_zoom,
				center: new r.LatLng(e.markerPos.lat, e.markerPos.lng)
			};
			StatTimer.stub("map_init"), e.map = new r.Map(e.mapContainer, n), r.event.addListenerOnce(e.map, "tilesloaded", function() {
				StatTimer.stub("map_complete"), l.report("customtiming", StatTimer.data)
			}), e.scaleControl = new t(e.scaleControlEl, e.map), o({
				poiHeight: e.poiHeight,
				poiWidth: e.poiWidth,
				poiIconSrc: e.poiIconSrc,
				poiLocation: e.markerPos,
				poiAnchor: e.poiAnchor,
				map: e.map
			}), removeClass(e.mapWidget, "hidden")
		}

		function b(e, t) {
			e === 0 && (e = 1);
			var n = t * Math.PI / 180,
				r = 156543.04 * Math.cos(n) * v / e;
			return Math.log2 ? r = Math.log2(r) : r = Math.log(r) / Math.LN2, Math.round(r || 11)
		}

		function w(e) {
			e.positioningBtn.onclick = n.bind(e.clickLocationBtn, e)
		}

		function E(e) {
			return e.trafficeLayer || (e.trafficeLayer = new r.TrafficLayer), e.trafficeLayer
		}

		function S(e) {
			var t = e.currentView;
			if(!t) return;
			t.clear(e.map), e.currentView = null
		}

		function x(e, t) {
			e.currentView = t, t.render(e.map)
		}
		var t = e("./ScaleControl"),
			n = e("underscore"),
			r = e("QQMapAPI"),
			i, s = !!navigator.userAgent.match(/jdapp;iphone;/i),
			o = e("./Marker"),
			u = e("./MyPositionMarker"),
			a = e("./getBoundsByPoints"),
			f = e("common/stat"),
			l = e("common/prStat"),
			c = e("./drawPoint"),
			h = e("config");
		e("common/dom/addStyle")(e("text!./drawPoint.css"));
		var p = "mapapiloaded",
			d = "maptilesloaded",
			v = window.innerWidth / 3 / 2 || 50;
		return m.prototype.clickLocationBtn = function() {
			f.clickReport("location"), s ? i = e("request/geo") : i = new qq.maps.Geolocation("VFUBZ-JIR3D-Z2M4H-PPAGG-G5KVQ-S3F2S", "internal_comps"), this.geo()
		}, m.prototype.geo = function(e) {
			var t = this;
			if(!i) return;
			s ? i({
				param: {
					accuracy: 1e6
				},
				cb: function(n, r) {
					n || !r || r.status !== 0 ? alert(n.errorMessage || "获取定位失败") : (r.locations[0].accuracy = r.accuracy, t.myPositionMarker || (t.myPositionMarker = new u(null, t), t.myPositionMarker.setMap(t.map), addClass(t.positioningBtn.querySelector("i"), "highlight")), t.myPositionMarker.updatePosition(r.locations[0]), !e && t.checkZoom(r.locations[0]))
				},
				timeout: 6e3
			}) : i.getLocation(function(n) {
				!n || (t.myPositionMarker || (t.myPositionMarker = new u(null, t), t.myPositionMarker.setMap(t.map), addClass(t.positioningBtn.querySelector("i"), "highlight")), t.myPositionMarker.updatePosition(n), !e && t.checkZoom(n))
			}, function() {
				alert("定位失败")
			})
		}, m.prototype.checkZoom = function(e) {
			var t = this;
			e = new r.LatLng(e.lat, e.lng);
			var n = new r.LatLng(t.markerPos.lat, t.markerPos.lng),
				i = t.map.getBounds(),
				s = function() {
					var n = t.map.getBounds();
					n.contains(e) || (n.extend(e), t.map.fitBounds(n))
				};
			i.contains(n) ? s() : t.map.fitBounds(a([n, e]))
		}, m.prototype.hideInfoBubble = function() {
			this.myPositionMarker.hideInfoBubble()
		}, m.prototype.showInfoBubble = function() {
			this.myPositionMarker.showInfoBubble()
		}, m.prototype.toggleTrafficLayer = function() {
			f.clickReport("traffic");
			var e = E(this);
			e.getMap() ? e.setMap(null) : e.setMap(this.map), toggleClass(this.trafficeBtn.querySelector("i"), "highlight")
		}, m.prototype.showView = function(e) {
			if(!window.qq || !window.qq.maps || !window.qq.maps.Map) {
				this.currentView = e;
				return
			}
			S(this), x(this, e)
		}, m.prototype.zoomIn = function() {
			var e = this.map;
			e.zoomTo(e.getZoom() + 1), f.clickReport("zoomin")
		}, m.prototype.zoomOut = function() {
			var e = this.map;
			e.zoomTo(e.getZoom() - 1), f.clickReport("zoomout")
		}, m.prototype.getFootContainer = function() {
			return this.footContainer
		}, m.prototype.onMapTileLoaded = function(e) {
			this.on(d, e)
		}, m.prototype.onMapApiLoaded = function(e) {
			this.on(p, e)
		}, m
	}), define("text!ui/map/holder.tpl", [], function() {
		return '<div id="common-widget-map" class="hidden">\n    <!-- <div id="map-container"></div> -->\n\n    <div id="map-my-position-marker">\n        <div class="round-mask"></div>\n        <i class="icon-my-pos-dir"></i>\n\n        <div class="poiresultinfowindow" style="display:none">\n            <a class="tonear"><i class="icon-nearby"></i></a>\n            <a class="topoidet" href="{{CONFIG.rootpath}}/detail/bubble/">\n                <span class="det-title">我的位置</span>\n                <span class="det-addr"></span>\n            </a>\n            <a class="tonav" href="{{CONFIG.rootpath}}/index/nav"><i class="icon-nav"></i></a>\n        </div>\n\n    </div>\n\n    <div class="ctrl-layer">\n        <!-- <a class="cbutton" id="btn-traffic" data-adtag="traffic"><i class="icon-traffic-light"></i></a> -->\n\n        <div class="to-bottom">\n            <div class="bottom-ctrl">\n\n                <!-- 1 定位按钮：左下角 -->\n                <a class="cbutton" id="btn-positioning" data-adtag="positioning"><i class="icon-positioning highlight"></i></a>\n                <!-- 2 比例尺+logo -->\n                <div id="map-info">\n                    <!-- 比例尺 -->\n                    <div class="scale"></div>\n                    <div class="qqmap-text-logo">腾讯地图</div>\n                </div>\n                <!-- 3 右侧 -->\n                <!--<div class="to-right">-->\n                    <!-- 缩放按钮 -->\n                    <!--<a class="cbutton" id="btn-zoom">\n                        <i id="btn-zoom-in" class="icon-zoom-in" data-adtag="zoomin"></i>\n                        <i id="btn-zoom-out" class="icon-zoom-out" data-adtag="zoomout"></i>\n                    </a>-->\n                    <!-- 弹出菜单-->\n                    <!--<a class="cbutton" id="btn-index-menu" data-adtag="more"><i class="icon-more"></i></a>\n                </div>-->\n            </div>\n            <div id="map-widget-foot-external-content"></div>\n        </div>\n\n    </div>\n\n\n</div>\n\n'
	}), define("tools/inheritMVCObject", ["require", "QQMapAPI", "common/class/inherit"], function(e) {
		var t = e("QQMapAPI"),
			n = e("common/class/inherit");
		return function(e) {
			n(e, t.MVCObject)
		}
	}), define("common/dom/HTMLEncode", ["require"], function(e) {
		function t(e) {
			var t = document.createElement("div");
			return t.textContent ? t.textContent = e : t.innerText = e, t.innerHTML
		}
		return t
	}), define("request/geocode", ["require", "tools/jsonp", "config", "common/object/encodeUrlParams"], function(e) {
		var t = e("tools/jsonp"),
			n = e("config"),
			r = e("common/object/encodeUrlParams"),
			i = n.apisHost + "ws/geocoder/v1?output=jsonp&key=" + n.apisKey + "&";
		return function(e) {
			param = r(e.param), t({
				url: i + param,
				cb: e.cb,
				context: e.context,
				timeout: e.timeout
			})
		}
	}), define("request/getpano", ["require", "tools/jsonp", "config", "common/object/encodeUrlParams"], function(e) {
		var t = e("tools/jsonp"),
			n = e("config"),
			r = e("common/object/encodeUrlParams"),
			i = n.apisHost + "ws/streetview/v1/getpano?output=jsonp&key=" + n.apisKey + "&";
		return function(e) {
			param = r(e.param), t({
				url: i + param,
				cb: e.cb,
				context: e.context,
				timeout: e.timeout
			})
		}
	}), define("data/poi", ["require", "data/hash", "tools/inheritMVCObject", "underscore", "common/dom/HTMLEncode", "request/geocode", "config", "request/getpano", "request/translate"], function(e) {
		var t = e("data/hash"),
			n = e("tools/inheritMVCObject"),
			r = e("underscore"),
			i = e("common/dom/HTMLEncode"),
			s = e("request/geocode"),
			o = e("config"),
			u = e("request/getpano"),
			a = e("request/translate"),
			f = function(e) {
				return r.isString(e) ? e.slice(-1) === "%" && !isNaN(e.slice(0, -1)) : !1
			},
			l = function(e) {
				if(!r.isString(e)) return !1;
				var t = e.split(",");
				return t.length === 2 && !isNaN(t[0]) && !isNaN(t[1]) && +t[0] > -90 && +t[0] < 90 && +t[1] > -180 && +t[1] < 180
			},
			c = function(e) {
				var t = e.split(",");
				return {
					lat: t[0],
					lng: t[1]
				}
			},
			h = function() {
				var e;
				t.anchor && (e = t.anchor.split(",")).length === 2 && !isNaN(e[0]) && !isNaN(e[1]) && (this.anchor = {
					x: +e[0],
					y: +e[1]
				})
			},
			p = function() {
				var e = ["height", "width"];
				for(var n = e.length - 1; n >= 0; n--) isNaN(t[e[n]]) ? f(t[e[n]]) && (this[e[n]] = t[e[n]]) : this[e[n]] = parseFloat(t[e[n]])
			},
			d = function() {
				t["icon-src"] && (this.icon_src = i(t["icon-src"]))
			},
			v = function() {
				t.coordtype && t.coordtype != 5 && t.location ? w.call(this) : l(t.location) && t.addr && t.name ? (this.location = c(t.location), this.addr = t.addr, this.name = t.name, t.referer == "dianping" ? T.call(this) : y.call(this)) : l(t.location) ? (this.location = c(t.location), b.call(this)) : t.addr && t.city ? s({
					cb: m,
					param: {
						address: t.addr,
						region: t.city
					},
					context: this,
					timeout: 1e3
				}) : T.call(this)
			},
			m = function(e) {
				e.status === 0 && e.result.location ? (this.set("location", r.clone(e.result.location)), t.name ? this.set("name", t.name) : this.set("name", e.result.address_component.street ? e.result.address_component.street : e.result.address_component.district), t.addr ? this.set("addr", t.addr) : this.set("addr", e.result.address), t.referer == "dianping" ? T.call(this) : y.call(this)) : T.call(this)
			},
			g = function(e) {
				e.status == 0 && e.locations.length > 0 ? (this.set("location", r.clone(e.locations[0])), t.addr && t.name ? (this.addr = t.addr, this.name = t.name, t.referer == "dianping" ? T.call(this) : y.call(this)) : b.call(this)) : T.call(this)
			},
			y = function() {
				var e = this.get("location");
				u({
					param: {
						location: e.lat + "," + e.lng
					},
					cb: E,
					context: this,
					timeout: 1e3
				})
			},
			b = function() {
				var e = this.get("location");
				s({
					cb: m,
					param: {
						location: e.lat + "," + e.lng
					},
					context: this,
					timeout: 1e3
				})
			},
			w = function() {
				a({
					param: {
						locations: t.location,
						type: t.coordtype
					},
					cb: g,
					context: this,
					timeout: 1e3
				})
			},
			E = function(e) {
				e && e.status === 0 && this.set("panoId", e.detail.id), T.call(this)
			},
			S = function() {
				var e = this;
				r.each(["phone", "city"], function(n) {
					t[n] && (e[n] = t[n])
				})
			},
			x = function(e, t) {
				var n = {
					must: e + "为必填，请补充",
					geo: "标注点地址为必填，请填写正确地址",
					location: "location参数格式错误，请正确填写"
				};
				return n[t]
			},
			T = function() {
				if(t.location && !l(t.location)) {
					this.set("errorMsg", x("", "location")), this.set("isPoi", !1);
					return
				}
				this.location ? this.name && this.addr && this.location ? this.set("isPoi", !0) : this.addr ? !this.location && !this.city ? (this.set("errorMsg", x("城市或坐标", "must")), this.set("isPoi", !1)) : this.name ? this.set("isPoi", !1) : (this.set("errorMsg", x("名称", "must")), this.set("isPoi", !1)) : (this.set("errorMsg", x("地址", "must")), this.set("isPoi", !1)) : (this.set("errorMsg", x("", "geo")), this.set("isPoi", !1))
			},
			N = function() {
				var e = this;
				this.icon_src = o.default_icon_src, this.height = o.default_icon_height, this.width = o.default_icon_width, this.anchor = o.default_icon_anchor, r.each([S, v], function(t) {
					t.call(e)
				})
			};
		return n(N), new N
	}), define("text!ui/map/holder.css", [], function() {
		return "#common-widget-map {\n  /*background: #f6f6f6;*/\n  /*position: absolute;\n  width: 100%;\n  height: 100%;*/\n}\n#common-widget-map #map-container {\n  position: absolute;\n  width: 100%;\n  height: 100%;\n}\n#map-my-position-marker {\n  display: none;\n  position: absolute;\n}\n#map-my-position-marker .round-mask {\n  display: none;\n  position: absolute;\n  /*left: -15px;\n  top: -15px;*/\n  /*width: 30px;\n  height: 30px;*/\n  width: 27px;\n  height: 27px;\n  -webkit-border-radius: 50%;\n  border-radius: 50%;\n  background-color: rgba(102,158,255,0.12);\n}\n#common-widget-map #map-my-position-marker .icon-my-pos-dir,\n#common-widget-map #map-my-position-marker .icon-my-pos {\n  position: absolute;\n  left: -11.5px;\n  top: -13.5px;\n}\n#common-widget-map .ctrl-layer .to-bottom {\n  position: absolute;\n  bottom: 0;\n  width: 100%;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl {\n  position: relative;\n  font-size: 0;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl #btn-positioning,\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl #map-info {\n  display: inline-block;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl #btn-positioning {\n  vertical-align: bottom;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl #map-info {\n  vertical-align: 2px;\n  margin-left: 0;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl .to-right {\n  position: absolute;\n  bottom: 0;\n  right: 0;\n}\n#common-widget-map .ctrl-layer .to-bottom .bottom-ctrl .to-right &gt;a {\n  display: block;\n}\n#common-widget-map .ctrl-layer a.cbutton,\n#common-widget-map .ctrl-layer #map-info {\n  margin: 10px;\n}\n#common-widget-map .ctrl-layer #foot-external-content {\n  position: relative;\n}\n#common-widget-map .ctrl-layer a.cbutton {\n  /*border-radius: 34px;*/\n  border-radius: 72px;\n  background-color: rgba(255,255,255,0.95);\n  -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.1);\n  box-shadow: 0 0 3px rgba(0,0,0,0.1);\n  border: solid 1px #bababa;\n  overflow: hidden;\n  display: block;\n}\n#common-widget-map .ctrl-layer a.cbutton i {\n  display: block;\n}\n#common-widget-map .ctrl-layer a.cbutton i:before {\n  display: block;\n  font-size: 24px;\n  width: 24px;\n  line-height: 24px;\n  text-align: center;\n  color: #5e5e5e;\n  padding: 5px;\n}\n#common-widget-map .ctrl-layer a.cbutton i.highlight:before {\n  color: #0079ff;\n}\n#common-widget-map .ctrl-layer a.cbutton i:active {\n  background: rgba(0,0,0,0.05);\n}\n#common-widget-map .ctrl-layer .icon-traffic-light:active {\n  border-radius: 34px;\n}\n#common-widget-map .ctrl-layer #btn-traffic {\n  position: absolute;\n  right: 0;\n  /*top: 45px;*/\n  bottom: 130px;\n}\n#common-widget-map #btn-zoom i:before {\n  padding: 10px 5px;\n}\n#common-widget-map #btn-zoom i#btn-zoom-in:before {\n  padding-bottom: 20px;\n}\n#common-widget-map #btn-zoom i#btn-zoom-out:before {\n  padding-top: 20px;\n}\n#common-widget-map #btn-index-menu {\n  display: none;\n}\n#common-widget-map #map-info .scale,\n/*#common-widget-map #map-info .qqmap-text-logo {\n  text-shadow: #fff 0 -1px, #fff 1px 0, #fff 0 1px, #fff -1px 0;\n}*/\n#common-widget-map #map-info .scale {\n  font-size: 10px;\n  text-align: center;\n  position: relative;\n  line-height: 1;\n  white-space: nowrap;\n  padding-bottom: 3px;\n  margin-bottom: 7px;\n}\n#common-widget-map #map-info .scale:before,\n#common-widget-map #map-info .scale:after {\n  content: '';\n  display: block;\n  position: absolute;\n  height: 3px;\n  border-top: none;\n}\n#common-widget-map #map-info .scale:before {\n  left: -1px;\n  right: -1px;\n  bottom: -3px;\n  border: 3px #fff solid;\n  border-top: 0;\n}\n#common-widget-map #map-info .scale:after {\n  left: 0;\n  right: 0;\n  bottom: -2px;\n  border: 1px #000 solid;\n  border-top: 0;\n}\n#common-widget-map #map-info .qqmap-text-logo {\n  font-family: icon;\n  font-size: 12px;\n  letter-spacing: 1px;\n  color: rgba(0,0,0,0.6);\n}\n#common-widget-map.covered {\n  -webkit-filter: blur(3px);\n  filter: blur(3px);\n}\n#common-widget-map.covered .ctrl-layer {\n  display: none;\n}\n"
	}), define("ui/map/index", ["require", "./MapViewManager", "text!./holder.tpl", "QQMapAPI", "data/poi", "common/class/inherit", "common/dom/addStyle", "text!./holder.css"], function(e) {
		var t = e("./MapViewManager"),
			n = e("text!./holder.tpl"),
			r = e("QQMapAPI").MVCObject,
			i = e("data/poi"),
			s = e("common/class/inherit"),
			o = e("common/dom/addStyle"),
			u = e("text!./holder.css");
		o(u);
		var a = function(e) {
			this.tempel = e.tempel, this.tempel.innerHTML = n, this.el = e.el, this.bindTo("poiHeight", i, "height", !0), this.bindTo("poiWidth", i, "width", !0), this.bindTo("poiIconSrc", i, "icon_src", !0), this.bindTo("poiAnchor", i, "anchor", !0), this.bindTo("name", i, "name", !0), this.bindTo("addr", i, "addr", !0), this.bindTo("panoId", i, "panoId", !0), this.bindTo("poiLocation", i, "location")
		};
		return s(a, r), a.prototype.poiLocation_changed = function() {
			this.mapView = new t({
				el: this.get("el"),
				markerPos: this.get("poiLocation"),
				poiHeight: this.get("poiHeight"),
				poiWidth: this.get("poiWidth"),
				poiIconSrc: this.get("poiIconSrc"),
				poiAnchor: this.get("poiAnchor"),
				poiName: this.get("name"),
				poiAddr: this.get("addr"),
				panoId: this.get("panoId")
			})
		}, a
	}), define("text!ui/pages/marker/style.css", [], function() {
		return ".page-marker {\n	width: 100%;\n	height: 100%;\n}\n.page-marker .map{\n	position: absolute;\n	top: 26px;\n	bottom: 0;\n	width: 100%;\n}\n.page-marker .tempel{\n	position: absolute;\n	height: 42%;\n	margin-left: 19px;\n	margin-top: 290px;\n	top: 0;\n	/*bottom: 100px;*/\n	bottom: 0;\n	width: 89%;\n	z-index: 1;\n}\n\n.page-marker .dt {\n	position: absolute;\n	bottom: 0;\n	height: 100px;\n	width: 100%;\n}"
	}), define("ui/pages/marker/view", ["require", "ui/map/index", "text!./style.css", "common/dom/addStyle"], function(e) {
		var t = e("ui/map/index"),
			n = '<div class="page-marker"><div class="tempel"><div class="map"></div><div class="tools"></div></div><div class="dt"></div></div>',
			r = e("text!./style.css");
		e("common/dom/addStyle")(r);
		var i = function() {
			this.el.innerHTML = n, this.mapCt = document.querySelector(".map"), this.dtCt = document.querySelector(".dt"), this.tools = document.querySelector(".tools"), this.mapModel = new t({
				el: this.mapCt,
				tempel: this.tools
			})
		};
		return {
			view: i
		}
	}), define("ui/pages/marker/index", ["require", "tools/MVCBind", "./view"], function(e) {
		var t = e("tools/MVCBind"),
			n = e("./view"),
			r = function(e) {
				this.setValues(e)
			};
		return t(r, {
			el_changed: "view"
		}, n), r
	}), define("text!ui/pages/error/tpl.html", [], function() {
		return "<div class='page-error'>\n	<div class='center'>\n		<div class='icon'></div>\n		<div class='msg'>{{errMsg}}</div>\n	</div>\n</div>"
	}), define("text!ui/pages/error/style.css", [], function() {
		return ".page-error {\n	width: 100%;\n	height: 100%;\n	position: relative;\n}\n.page-error .icon {\n	background: url(images/i.png) no-repeat;\n	width: 55px;\n	height: 55px;\n	background-size: 100%;\n	margin: 0 auto 20px auto;\n}\n\n.page-error .center {\n	width: 250px;\n	position: absolute;\n	top: 50%;\n	left: 50%;\n	margin-left: -125px;\n	transform: translateY(-50%);\n	-webkit-transform: translateY(-50%);\n	box-sizing: border-box;\n	-webkit-box-sizing: border-box;\n	color: #54585e;\n	font-size: 16px;\n	text-align: center;\n	padding: 10px;\n}\n"
	}),
	function(e, t) {
		typeof exports == "object" && exports ? t(exports) : typeof define == "function" && define.amd ? define("mustache", ["exports"], t) : t(e.Mustache = {})
	}(this, function(e) {
		function r(e) {
			return typeof e == "function"
		}

		function i(e) {
			return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&")
		}

		function o(e, t) {
			return s.call(e, t)
		}

		function a(e) {
			return !o(u, e)
		}

		function l(e) {
			return String(e).replace(/[&<>"'\/]/g, function(e) {
				return f[e]
			})
		}

		function m(t, r) {
			function m() {
				if(f && !l)
					while(u.length) delete o[u.pop()];
				else u = [];
				f = !1, l = !1
			}

			function x(e) {
				typeof e == "string" && (e = e.split(h, 2));
				if(!n(e) || e.length !== 2) throw new Error("Invalid tags: " + e);
				w = new RegExp(i(e[0]) + "\\s*"), E = new RegExp("\\s*" + i(e[1])), S = new RegExp("\\s*" + i("}" + e[1]))
			}
			if(!t) return [];
			var s = [],
				o = [],
				u = [],
				f = !1,
				l = !1,
				w, E, S;
			x(r || e.tags);
			var T = new b(t),
				N, C, k, L, A, O;
			while(!T.eos()) {
				N = T.pos, k = T.scanUntil(w);
				if(k)
					for(var M = 0, _ = k.length; M < _; ++M) L = k.charAt(M), a(L) ? u.push(o.length) : l = !0, o.push(["text", L, N, N + 1]), N += 1, L === "\n" && m();
				if(!T.scan(w)) break;
				f = !0, C = T.scan(v) || "name", T.scan(c), C === "=" ? (k = T.scanUntil(p), T.scan(p), T.scanUntil(E)) : C === "{" ? (k = T.scanUntil(S), T.scan(d), T.scanUntil(E), C = "&") : k = T.scanUntil(E);
				if(!T.scan(E)) throw new Error("Unclosed tag at " + T.pos);
				A = [C, k, N, T.pos], o.push(A);
				if(C === "#" || C === "^") s.push(A);
				else if(C === "/") {
					O = s.pop();
					if(!O) throw new Error('Unopened section "' + k + '" at ' + N);
					if(O[1] !== k) throw new Error('Unclosed section "' + O[1] + '" at ' + N)
				} else C === "name" || C === "{" || C === "&" ? l = !0 : C === "=" && x(k)
			}
			O = s.pop();
			if(O) throw new Error('Unclosed section "' + O[1] + '" at ' + T.pos);
			return y(g(o))
		}

		function g(e) {
			var t = [],
				n, r;
			for(var i = 0, s = e.length; i < s; ++i) n = e[i], n && (n[0] === "text" && r && r[0] === "text" ? (r[1] += n[1], r[3] = n[3]) : (t.push(n), r = n));
			return t
		}

		function y(e) {
			var t = [],
				n = t,
				r = [],
				i, s;
			for(var o = 0, u = e.length; o < u; ++o) {
				i = e[o];
				switch(i[0]) {
					case "#":
					case "^":
						n.push(i), r.push(i), n = i[4] = [];
						break;
					case "/":
						s = r.pop(), s[5] = i[2], n = r.length > 0 ? r[r.length - 1][4] : t;
						break;
					default:
						n.push(i)
				}
			}
			return t
		}

		function b(e) {
			this.string = e, this.tail = e, this.pos = 0
		}

		function w(e, t) {
			this.view = e == null ? {} : e, this.cache = {
				".": this.view
			}, this.parent = t
		}

		function E() {
			this.cache = {}
		}
		var t = Object.prototype.toString,
			n = Array.isArray || function(e) {
				return t.call(e) === "[object Array]"
			},
			s = RegExp.prototype.test,
			u = /\S/,
			f = {
				"&": "&amp;",
				"<": "&lt;",
				">": "&gt;",
				'"': "&quot;",
				"'": "&#39;",
				"/": "&#x2F;"
			},
			c = /\s*/,
			h = /\s+/,
			p = /\s*=/,
			d = /\s*\}/,
			v = /#|\^|\/|>|\{|&|=|!/;
		b.prototype.eos = function() {
			return this.tail === ""
		}, b.prototype.scan = function(e) {
			var t = this.tail.match(e);
			if(!t || t.index !== 0) return "";
			var n = t[0];
			return this.tail = this.tail.substring(n.length), this.pos += n.length, n
		}, b.prototype.scanUntil = function(e) {
			var t = this.tail.search(e),
				n;
			switch(t) {
				case -1:
					n = this.tail, this.tail = "";
					break;
				case 0:
					n = "";
					break;
				default:
					n = this.tail.substring(0, t), this.tail = this.tail.substring(t)
			}
			return this.pos += n.length, n
		}, w.prototype.push = function(e) {
			return new w(e, this)
		}, w.prototype.lookup = function(e) {
			var t = this.cache,
				n;
			if(e in t) n = t[e];
			else {
				var i = this,
					s, o;
				while(i) {
					if(e.indexOf(".") > 0) {
						n = i.view, s = e.split("."), o = 0;
						while(n != null && o < s.length) n = n[s[o++]]
					} else n = i.view[e];
					if(n != null) break;
					i = i.parent
				}
				t[e] = n
			}
			return r(n) && (n = n.call(this.view)), n
		}, E.prototype.clearCache = function() {
			this.cache = {}
		}, E.prototype.parse = function(e, t) {
			var n = this.cache,
				r = n[e];
			return r == null && (r = n[e] = m(e, t)), r
		}, E.prototype.render = function(e, t, n) {
			var r = this.parse(e),
				i = t instanceof w ? t : new w(t);
			return this.renderTokens(r, i, n, e)
		}, E.prototype.renderTokens = function(t, i, s, o) {
			function f(e) {
				return a.render(e, i, s)
			}
			var u = "",
				a = this,
				l, c;
			for(var h = 0, p = t.length; h < p; ++h) {
				l = t[h];
				switch(l[0]) {
					case "#":
						c = i.lookup(l[1]);
						if(!c) continue;
						if(n(c))
							for(var d = 0, v = c.length; d < v; ++d) u += this.renderTokens(l[4], i.push(c[d]), s, o);
						else if(typeof c == "object" || typeof c == "string") u += this.renderTokens(l[4], i.push(c), s, o);
						else if(r(c)) {
							if(typeof o != "string") throw new Error("Cannot use higher-order sections without the original template");
							c = c.call(i.view, o.slice(l[3], l[5]), f), c != null && (u += c)
						} else u += this.renderTokens(l[4], i, s, o);
						break;
					case "^":
						c = i.lookup(l[1]);
						if(!c || n(c) && c.length === 0) u += this.renderTokens(l[4], i, s, o);
						break;
					case ">":
						if(!s) continue;
						c = r(s) ? s(l[1]) : s[l[1]], c != null && (u += this.renderTokens(this.parse(c), i, s, c));
						break;
					case "&":
						c = i.lookup(l[1]), c != null && (u += c);
						break;
					case "name":
						c = i.lookup(l[1]), c != null && (u += e.escape(c));
						break;
					case "text":
						u += l[1]
				}
			}
			return u
		}, e.name = "mustache.js", e.version = "0.8.1", e.tags = ["{{", "}}"];
		var S = new E;
		e.clearCache = function() {
			return S.clearCache()
		}, e.parse = function(e, t) {
			return S.parse(e, t)
		}, e.render = function(e, t, n) {
			return S.render(e, t, n)
		}, e.to_html = function(t, n, i, s) {
			var o = e.render(t, n, i);
			if(!r(s)) return o;
			s(o)
		}, e.escape = l, e.Scanner = b, e.Context = w, e.Writer = E
	}), define("ui/pages/error/view", ["require", "text!./tpl.html", "text!./style.css", "mustache", "common/dom/addStyle"], function(e) {
		var t = e("text!./tpl.html"),
			n = e("text!./style.css"),
			r = e("mustache");
		e("common/dom/addStyle")(n);
		var i = function() {
			this.el.innerHTML = r.render(t, {
				errMsg: this.get("errorMsg")
			})
		};
		return {
			view: i
		}
	}), define("ui/pages/error/index", ["require", "tools/MVCBind", "./view", "data/poi"], function(e) {
		var t = e("tools/MVCBind"),
			n = e("./view"),
			r = e("data/poi"),
			i = function(e) {
				this.bindTo("errorMsg", r, "errorMsg", !0), this.setValues(e)
			};
		return t(i, {
			el_changed: "view"
		}, n), i
	}), define("ui/pageCt/pagelist", ["require", "ui/pages/marker/index", "ui/pages/error/index"], function(e) {
		var t = e("ui/pages/marker/index"),
			n = e("ui/pages/error/index");
		return {
			marker: t,
			error: n
		}
	}), define("text!ui/loading/loading.html", [], function() {
		return '<div class="common-widget-loading" style="display: block;">\n    <ul class="loading">\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    	<li></li>\n    </ul>\n</div>'
	}), define("text!ui/loading/loading.css", [], function() {
		return ".common-widget-loading {\n  z-index: 10000;\n  display: none;\n  width: 40px;\n  height: 40px;\n  position: absolute;\n  left: 50%;\n  margin-left: -10px;\n  top: 50%;\n  margin-top: -10px;\n  transform: scale(0.5, 0.5);\n  -webkit-transform: scale(0.5, 0.5);\n}\n@-webkit-keyframes loading-anim {\n  0% {\n  -webkit-transform: rotate(0deg);\n}\n100% {\n  -webkit-transform: rotate(360deg);\n}\n\n}\n.common-widget-loading .loading {\n  -webkit-animation: loading-anim 1000ms linear infinite;\n  width: 0px;\n  position: absolute;\n  background-color: #aaa;\n}\n.common-widget-loading .loading li {\n  position: absolute;\n  width: 12px;\n  height: 4px;\n  border-radius: 2px;\n  background-color: #54585e;\n  transform-origin: 0% 50%;\n  -webkit-transform-origin: 0% 50%;\n  transform: rotate(0deg) translate(15px, 0px);\n  -webkit-transform: rotate(0deg) translate(15px, 0px);\n}\n.common-widget-loading .loading li:nth-child(2) {\n  transform: rotate(-30deg) translate(15px, 0px);\n  -webkit-transform: rotate(-30deg) translate(15px, 0px);\n  opacity: 0.95;\n}\n.common-widget-loading .loading li:nth-child(3) {\n  transform: rotate(-60deg) translate(15px, 0px);\n  -webkit-transform: rotate(-60deg) translate(15px, 0px);\n  opacity: 0.85;\n}\n.common-widget-loading .loading li:nth-child(4) {\n  transform: rotate(-90deg) translate(15px, 0px);\n  -webkit-transform: rotate(-90deg) translate(15px, 0px);\n  opacity: 0.75;\n}\n.common-widget-loading .loading li:nth-child(5) {\n  transform: rotate(-120deg) translate(15px, 0px);\n  -webkit-transform: rotate(-120deg) translate(15px, 0px);\n  opacity: 0.65;\n}\n.common-widget-loading .loading li:nth-child(6) {\n  transform: rotate(-150deg) translate(15px, 0px);\n  -webkit-transform: rotate(-150deg) translate(15px, 0px);\n  opacity: 0.55;\n}\n.common-widget-loading .loading li:nth-child(7) {\n  transform: rotate(-180deg) translate(15px, 0px);\n  -webkit-transform: rotate(-180deg) translate(15px, 0px);\n  opacity: 0.45;\n}\n.common-widget-loading .loading li:nth-child(8) {\n  transform: rotate(-210deg) translate(15px, 0px);\n  -webkit-transform: rotate(-210deg) translate(15px, 0px);\n  opacity: 0.35;\n}\n.common-widget-loading .loading li:nth-child(9) {\n  transform: rotate(-240deg) translate(15px, 0px);\n  -webkit-transform: rotate(-240deg) translate(15px, 0px);\n  opacity: 0.25;\n}\n.common-widget-loading .loading li:nth-child(10) {\n  transform: rotate(-270deg) translate(15px, 0px);\n  -webkit-transform: rotate(-270deg) translate(15px, 0px);\n  opacity: 0.15;\n}\n.common-widget-loading .loading li:nth-child(11) {\n  transform: rotate(-300deg) translate(15px, 0px);\n  -webkit-transform: rotate(-300deg) translate(15px, 0px);\n  opacity: 0.05;\n}\n.common-widget-loading .loading li:nth-child(12) {\n  transform: rotate(-360deg) translate(15px, 0px);\n  -webkit-transform: rotate(-360deg) translate(15px, 0px);\n  opacity: 0;\n}\n"
	}), define("ui/loading/index", ["require", "text!./loading.html", "text!./loading.css", "common/dom/addStyle"], function(e) {
		var t = e("text!./loading.html"),
			n = e("text!./loading.css");
		return e("common/dom/addStyle")(n),
			function(e) {
				this.el = e.el, this.el.innerHTML = t
			}
	}), define("ui/pageCt/view", ["require", "./pagelist", "ui/loading/index", "common/dom/addStyle"], function(e) {
		var t = e("./pagelist"),
			n = e("ui/loading/index"),
			r = ".pageCt {width: 100%;height: 100%;}",
			i = '<div class="pageCt"></div>';
		e("common/dom/addStyle")(r);
		var s = {
			view: function() {
				this.el.innerHTML = i, this.dom = document.querySelector(".pageCt"), this.loading = new n({
					el: this.dom
				})
			},
			pageChange: function() {
				this.currentPageModel && this.currentPageModel.destory(), this.currentPageModel = new t[this.currentPage]({
					el: this.dom
				})
			}
		};
		return s
	}), define("ui/pageCt/index", ["require", "data/hash", "tools/MVCBind", "./view"], function(e) {
		var t = e("data/hash");
		document.title = t.name ? t.name : "我的爱车";
		var n = e("tools/MVCBind"),
			r = e("./view"),
			i = {
				el_changed: "view",
				currentPage_changed: "pageChange"
			},
			s = function(e) {
				this.setValues(e)
			};
		return n(s, i, r), s
	}), require(["ui/pageCt/index", "data/poi", "tools/inheritMVCObject", "common/stat", "common/prStat", "config", "data/hash", "QQMapAPI"], function(e, t, n, r, i, s, o) {
		function l() {
			var e = (new Date).getTime();
			__start ? r.report("loadtime", {
				time: e - __start
			}) : r.report("loadtime", {
				time: "invalid"
			}), clearInterval(f)
		}
		var u = function() {
			this.bindTo("isPoi", t, "isPoi", !1)
		};
		n(u), u.prototype.isPoi_changed = function() {
			var t = document.getElementById("page_container");
			this.get("isPoi") ? this.pageCt = new e({
				el: t,
				currentPage: "marker"
			}) : this.get("isPoi") === !1 && (this.pageCt = new e({
				el: t,
				currentPage: "error"
			}))
		};
		var message-data = function() {
			window.scroll(0, screen.availHeight - window.innerHeight)
		};
		window.addEventListener("orientationchange", a, !1), a(), r.init({
			appId: s.appId,
			from: o.referer || "",
			apptype: s.apptype
		}), i.init({
			appId: s.mc_appId,
			from: o.referer || ""
		});
		var f = setInterval(function() {
				document.readyState == "complete" && l()
			}, 500),
			c = new u
	}), define("../index", function() {});